#ifndef __BWLIB_UTILITY_NULLPTR_H__
#define __BWLIB_UTILITY_NULLPTR_H__

#include "../config.h"

namespace bwlib
{
#ifndef __BWLIB_CXX11
	const class nullptr_t
	{
		void operator & () const;
	public:
		template<typename Type>
		operator Type* () const
		{
			return 0;
		}

		template<typename ClassType, typename MemType>
		operator MemType ClassType::* () const
		{
			return 0;
		}
	} nullptr = {};
#endif
}

#ifndef __BWLIB_CXX11
namespace std
{
	using bwlib::nullptr_t;
}

using bwlib::nullptr;
#endif

#endif
